2   id="motiondialer-queueCampaign"
 
   3   class="page-layout simple tabbed"
 
   7   <div class="header md-accent-bg" layout="row" layout-align="start center">
 
   8     <div class="white-fg" layout="row" layout-align="start center" flex>
 
  10         class="goto-queueCampaigns-button md-icon-button"
 
  11         aria-label="Go to queueCampaigns"
 
  12         ng-click="vm.gotoQueueCampaigns()"
 
  14         translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS"
 
  16         <md-icon md-font-icon="icon-arrow-left"></md-icon>
 
  19       <div layout="row" layout-align="start center">
 
  20         <div class="queueCampaign-image" hide-xs>
 
  21           <img ng-src="assets/images/business/queueCampaigns.jpg" />
 
  24         <div layout="column" layout-align="start start">
 
  26             #{{vm.queueCampaign.id}}
 
  27             <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>
 
  29           <div class="subtitle secondary-text">
 
  30             <span translate="MOTIONDIALER.CREATED_AT"></span>
 
  31             <span>{{vm.queueCampaign.createdAt | date:'medium'}}</span>
 
  37     <div ng-cloak ng-if="vm.crudPermissions.canEdit">
 
  39         ng-click="vm.clonedialog(vm.queueCampaign, $event)"
 
  40         class="md-fab md-green-500-bg md-icon-button"
 
  44           ><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span
 
  46         <md-icon md-font-icon="icon-content-duplicate"></md-icon>
 
  52         ng-click="vm.listadddialog(vm.queueCampaign, $event)"
 
  53         class="md-fab md-green-500-bg md-icon-button"
 
  57           ><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span
 
  59         <md-icon md-font-icon="icon-format-list-numbers"></md-icon>
 
  65         ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)"
 
  66         class="md-fab md-warn md-icon-button"
 
  67         aria-label="blacklistadd"
 
  70           ><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span
 
  72         <md-icon md-font-icon="icon-block-helper"></md-icon>
 
  78         ng-click="vm.teamadddialog(vm.queueCampaign, $event)"
 
  79         class="md-fab md-orange-500-bg md-icon-button"
 
  83           ><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span
 
  85         <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>
 
  91         ng-click="vm.agentadddialog(vm.queueCampaign, $event)"
 
  92         class="md-fab md-purple-500-bg md-icon-button"
 
  96           ><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span
 
  98         <md-icon md-font-icon="icon-account-plus"></md-icon>
 
 102     <div ng-cloak ng-if="vm.crudPermissions.canEdit">
 
 104         ng-click="vm.resetlistdialog(vm.queueCampaign, $event)"
 
 105         class="md-fab md-warn md-icon-button"
 
 106         aria-label="resetlist"
 
 109           ><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span
 
 111         <md-icon md-font-icon="icon-restore"></md-icon>
 
 117         ng-click="vm.gotogoto(vm.queueCampaign, $event)"
 
 118         class="md-fab md-warn md-icon-button"
 
 122           ><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span
 
 124         <md-icon md-font-icon="icon-cast"></md-icon>
 
 130         ng-click="vm.saveQueueCampaign()"
 
 131         ng-if="vm.crudPermissions.canEdit"
 
 132         class="send-button md-accent md-raised"
 
 133         ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"
 
 134         translate="MOTIONDIALER.SAVE"
 
 135         translate-attr-aria-label="MOTIONDIALER.SAVE"
 
 144   <div class="content">
 
 146       md-selected="vm.selectedTab"
 
 147       md-stretch-tabs="always"
 
 154           <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>
 
 158             class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp"
 
 160             <div class="pb-16" layout="row" layout-align="start center">
 
 161               <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">
 
 165             <form name="generalForm" novalidate>
 
 166               <md-input-container class="md-block">
 
 167                 <label translate="MOTIONDIALER.NAME">Name</label>
 
 171                   ng-model="vm.queueCampaign.name"
 
 172                   ng-pattern="/^[A-Za-z0-9\.\_]+$/i"
 
 179                   <span translate="MOTIONDIALER.HELP.NAME"></span>
 
 182                   ng-messages="generalForm['name'].$error"
 
 183                   ng-show="generalForm['name'].$touched"
 
 186                   <div ng-message="required">
 
 187                     <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED"
 
 188                       >Name field is required</span
 
 191                   <div ng-message="pattern">
 
 193                       translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN"
 
 194                       translate-values="{ regex: '/^[A-Za-z0-9\.\_]+$/i' }"
 
 195                       >Name must be valid pattern
 
 199               </md-input-container>
 
 200               <md-input-container class="md-block">
 
 202                   ng-model="vm.queueCampaign.dialActive"
 
 204                   ng-disabled="!vm.crudPermissions.canEdit"
 
 205                   ><span translate="MOTIONDIALER.ACTIVE"
 
 209               </md-input-container>
 
 210               <md-input-container class="md-block">
 
 211                 <label translate="MOTIONDIALER.TRUNK">Trunk</label>
 
 214                   ng-model="vm.queueCampaign.TrunkId"
 
 216                   ng-disabled="!vm.crudPermissions.canEdit"
 
 219                     ng-value="TrunkId.id"
 
 220                     ng-repeat="TrunkId in vm.trunks"
 
 221                     ng-disabled="TrunkId.canSelect === false"
 
 222                     >{{ TrunkId.name }}</md-option
 
 226                   ng-messages="generalForm['TrunkId'].$error"
 
 227                   ng-show="generalForm['TrunkId'].$touched"
 
 230                   <div ng-message="required">
 
 231                     <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED"
 
 232                       >Trunk field is required</span
 
 236               </md-input-container>
 
 237               <md-input-container class="md-block">
 
 238                 <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>
 
 241                   ng-model="vm.queueCampaign.TrunkBackupId"
 
 242                   ng-disabled="!vm.crudPermissions.canEdit"
 
 244                   <md-option ng-value="null">None</md-option>
 
 246                     ng-value="TrunkBackupId.id"
 
 247                     ng-repeat="TrunkBackupId in vm.trunks"
 
 248                     ng-disabled="TrunkBackupId.canSelect === false"
 
 249                     >{{ TrunkBackupId.name }}</md-option
 
 253                   ng-messages="generalForm['TrunkBackupId'].$error"
 
 254                   ng-show="generalForm['TrunkBackupId'].$touched"
 
 257                   <div ng-message="required">
 
 258                     <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED"
 
 259                       >BackupTrunk field is required</span
 
 263               </md-input-container>
 
 265                 ng-if="vm.queueCampaign.dialMethod != 'preview'"
 
 268                 <label translate="MOTIONDIALER.INTERVAL">Interval</label>
 
 271                   ng-model="vm.queueCampaign.IntervalId"
 
 273                   ng-disabled="!vm.crudPermissions.canEdit"
 
 276                     ng-value="IntervalId.id"
 
 277                     ng-repeat="IntervalId in vm.interval"
 
 278                     ng-disabled="IntervalId.canSelect === false"
 
 279                     >{{ IntervalId.name }}</md-option
 
 283                   ng-messages="generalForm['IntervalId'].$error"
 
 284                   ng-show="generalForm['IntervalId'].$touched"
 
 287                   <div ng-message="required">
 
 288                     <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED"
 
 289                       >Interval field is required</span
 
 293               </md-input-container>
 
 294               <md-input-container class="md-block">
 
 295                 <label translate="MOTIONDIALER.CHECKDUPLICATE"
 
 296                   >CheckDuplicate</label
 
 299                   name="dialCheckDuplicateType"
 
 300                   ng-model="vm.queueCampaign.dialCheckDuplicateType"
 
 302                   ng-disabled="!vm.crudPermissions.canEdit"
 
 304                   <md-option ng-value="'always'">
 
 305                     {{ 'MOTIONDIALER.ALWAYS' | translate }}
 
 308                   <md-option ng-value="'never'">
 
 309                     {{ 'MOTIONDIALER.NEVER' | translate }}
 
 312                   <md-option ng-value="'onlyIfOpen'">
 
 313                     {{ 'MOTIONDIALER.ONLY_IF_OPEN' | translate }}
 
 317                   ng-messages="generalForm['dialCheckDuplicateType'].$error"
 
 318                   ng-show="generalForm['dialCheckDuplicateType'].$touched"
 
 321                   <div ng-message="required">
 
 323                       translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED"
 
 324                       >CheckDuplicate field is required</span
 
 328               </md-input-container>
 
 329               <md-input-container class="md-block">
 
 330                 <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>
 
 334                   ng-model="vm.queueCampaign.dialCutDigit"
 
 338                   ng-disabled="!vm.crudPermissions.canEdit"
 
 342                   ng-messages="generalForm['dialCutDigit'].$error"
 
 343                   ng-show="generalForm['dialCutDigit'].$touched"
 
 346                   <div ng-message="required">
 
 347                     <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED"
 
 348                       >CutDigit field is required</span
 
 351                   <div ng-message="min">
 
 353                       translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 354                       >CutDigit must be a valid greater or equal than</span
 
 358                   <div ng-message="max">
 
 360                       translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 361                       >CutDigit must be a valid greater or equal than</span
 
 366               </md-input-container>
 
 367               <md-input-container class="md-block">
 
 368                 <label translate="MOTIONDIALER.DESCRIPTION">Description</label>
 
 372                   ng-model="vm.queueCampaign.description"
 
 373                   ng-disabled="!vm.crudPermissions.canEdit"
 
 377                   ng-messages="generalForm['description'].$error"
 
 378                   ng-show="generalForm['description'].$touched"
 
 381                   <div ng-message="required">
 
 382                     <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED"
 
 383                       >Description field is required</span
 
 387               </md-input-container>
 
 394           <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>
 
 398             class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp"
 
 400             <div class="pb-16" layout="row" layout-align="start center">
 
 401               <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">
 
 405             <form name="campaignForm" novalidate>
 
 406               <md-input-container class="md-block">
 
 407                 <label translate="MOTIONDIALER.METHOD">Method</label>
 
 410                   ng-model="vm.queueCampaign.dialMethod"
 
 413                   ng-disabled="!vm.crudPermissions.canEdit"
 
 415                   <md-option ng-value="'progressive'">Progressive</md-option>
 
 416                   <md-option ng-value="'power'">PowerDialing</md-option>
 
 417                   <md-option ng-value="'predictive'">Predictive</md-option>
 
 418                   <md-option ng-value="'preview'">Preview</md-option>
 
 419                   <md-option ng-value="'booked'">BookedProgressive</md-option>
 
 422                   <span translate="MOTIONDIALER.HELP.METHOD"></span>
 
 425                   ng-messages="campaignForm['dialMethod'].$error"
 
 426                   ng-show="campaignForm['dialMethod'].$touched"
 
 429                   <div ng-message="required">
 
 430                     <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED"
 
 431                       >Method field is required</span
 
 435               </md-input-container>
 
 437                 ng-if="vm.queueCampaign.dialMethod == 'power'"
 
 440                 <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>
 
 442                   <span translate="MOTIONDIALER.HELP.POWERLEVEL"></span>
 
 447                   ng-model="vm.queueCampaign.dialPowerLevel"
 
 453               </md-input-container>
 
 455                 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
 
 458                 <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION"
 
 459                   >PredictiveOptimization</label
 
 462                   name="dialPredictiveOptimization"
 
 463                   ng-model="vm.queueCampaign.dialPredictiveOptimization"
 
 464                   ng-disabled="!vm.crudPermissions.canEdit"
 
 466                   <md-option ng-value="'agentBusyFactor'">
 
 467                     {{ 'MOTIONDIALER.AGENTBUSYFACTOR' | translate }}
 
 470                   <md-option ng-value="'dropRate'">
 
 471                     {{ 'MOTIONDIALER.DROPRATE' | translate }}
 
 476                     translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"
 
 480                   ng-messages="campaignForm['dialPredictiveOptimization'].$error"
 
 481                   ng-show="campaignForm['dialPredictiveOptimization'].$touched"
 
 484                   <div ng-message="required">
 
 486                       translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED"
 
 487                       >PredictiveOptimization field is required</span
 
 491               </md-input-container>
 
 493                 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
 
 496                 <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE"
 
 497                   >PredictiveOptimizationPercentage</span
 
 501                     translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"
 
 507                   ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage"
 
 513               </md-input-container>
 
 515                 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
 
 518                 <span translate="MOTIONDIALER.PREDICTIVEINTERVAL"
 
 519                   >PredictiveInterval</span
 
 522                   <span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span>
 
 527                   ng-model="vm.queueCampaign.dialPredictiveInterval"
 
 533               </md-input-container>
 
 535                 ng-if="vm.queueCampaign.dialMethod != 'preview'"
 
 538                 <label translate="MOTIONDIALER.MAXCONCURRENTCALLS"
 
 539                   >MaxConcurrentCalls</label
 
 543                   name="dialLimitQueue"
 
 544                   ng-model="vm.queueCampaign.dialLimitQueue"
 
 548                   ng-disabled="!vm.crudPermissions.canEdit"
 
 552                   <span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span>
 
 555                   ng-messages="campaignForm['dialLimitQueue'].$error"
 
 556                   ng-show="campaignForm['dialLimitQueue'].$touched"
 
 559                   <div ng-message="required">
 
 561                       translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED"
 
 562                       >MaxConcurrentCalls field is required</span
 
 565                   <div ng-message="min">
 
 567                       translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 568                       >MaxConcurrentCalls must be a valid greater or equal
 
 573                   <div ng-message="max">
 
 575                       translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 576                       >MaxConcurrentCalls must be a valid greater or equal
 
 582               </md-input-container>
 
 583               <md-input-container class="md-block">
 
 584                 <label translate="MOTIONDIALER.AGENTTIMEOUT"
 
 590                   ng-model="vm.queueCampaign.timeout"
 
 593                   ng-disabled="!vm.crudPermissions.canEdit"
 
 597                   <span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span>
 
 600                   ng-messages="campaignForm['timeout'].$error"
 
 601                   ng-show="campaignForm['timeout'].$touched"
 
 604                   <div ng-message="required">
 
 605                     <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED"
 
 606                       >AgentTimeout field is required</span
 
 609                   <div ng-message="min">
 
 611                       translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 612                       >AgentTimeout must be a valid greater or equal than</span
 
 617               </md-input-container>
 
 621             class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp"
 
 623             <div class="pb-16" layout="row" layout-align="start center">
 
 624               <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">
 
 628             <form name="queueForm" novalidate>
 
 630                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 633                 <label translate="MOTIONDIALER.QUEUEOPTIONS"
 
 638                   name="dialQueueOptions"
 
 639                   ng-model="vm.queueCampaign.dialQueueOptions"
 
 641                   ng-disabled="!vm.crudPermissions.canEdit"
 
 645                   ng-messages="queueForm['dialQueueOptions'].$error"
 
 646                   ng-show="queueForm['dialQueueOptions'].$touched"
 
 649                   <div ng-message="required">
 
 650                     <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED"
 
 651                       >QueueOptions field is required</span
 
 655               </md-input-container>
 
 657                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 660                 <label translate="MOTIONDIALER.QUEUETIMEOUT"
 
 665                   name="dialQueueTimeout"
 
 666                   ng-model="vm.queueCampaign.dialQueueTimeout"
 
 670                   ng-disabled="!vm.crudPermissions.canEdit"
 
 674                   <span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span>
 
 677                   ng-messages="queueForm['dialQueueTimeout'].$error"
 
 678                   ng-show="queueForm['dialQueueTimeout'].$touched"
 
 681                   <div ng-message="required">
 
 682                     <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED"
 
 683                       >QueueTimeout field is required</span
 
 686                   <div ng-message="min">
 
 688                       translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 689                       >QueueTimeout must be a valid greater or equal than</span
 
 693                   <div ng-message="max">
 
 695                       translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 696                       >QueueTimeout must be a valid greater or equal than</span
 
 701               </md-input-container>
 
 703                 ng-if="vm.queueCampaign.dialMethod === 'booked' || vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 706                 <label translate="MOTIONDIALER.STRATEGY">Strategy</label>
 
 709                   ng-model="vm.queueCampaign.strategy"
 
 711                   ng-disabled="!vm.crudPermissions.canEdit"
 
 713                   <md-option ng-value="'rrmemory'"
 
 714                     >Round Robin Memory</md-option
 
 717                     ng-value="'roundrobin'"
 
 718                     ng-if="vm.queueCampaign.dialMethod === 'booked'"
 
 719                     >Round Robin</md-option
 
 722                     ng-value="'leastrecent'"
 
 723                     ng-if="vm.queueCampaign.dialMethod !== 'booked'"
 
 724                     >Least Recent</md-option
 
 727                     ng-value="'fewestcalls'"
 
 728                     ng-if="vm.queueCampaign.dialMethod !== 'booked'"
 
 729                     >Fewest Calls</md-option
 
 733                     ng-if="vm.queueCampaign.dialMethod !== 'booked'"
 
 738                     ng-if="vm.queueCampaign.dialMethod !== 'booked'"
 
 743                     ng-if="vm.queueCampaign.dialMethod !== 'booked'"
 
 744                     >Weight Random</md-option
 
 748                   ng-messages="queueForm['strategy'].$error"
 
 749                   ng-show="queueForm['strategy'].$touched"
 
 752                   <div ng-message="required">
 
 753                     <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED"
 
 754                       >Strategy field is required</span
 
 758               </md-input-container>
 
 760                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 763                 <label translate="MOTIONDIALER.RETRY">Retry</label>
 
 767                   ng-model="vm.queueCampaign.retry"
 
 769                   ng-disabled="!vm.crudPermissions.canEdit"
 
 773                   <span translate="MOTIONDIALER.HELP.RETRY"></span>
 
 776                   ng-messages="queueForm['retry'].$error"
 
 777                   ng-show="queueForm['retry'].$touched"
 
 780                   <div ng-message="required">
 
 781                     <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED"
 
 782                       >Retry field is required</span
 
 785                   <div ng-message="min">
 
 787                       translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 788                       >Retry must be a valid greater or equal than</span
 
 793               </md-input-container>
 
 795                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 798                 <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>
 
 802                   ng-model="vm.queueCampaign.wrapuptime"
 
 804                   ng-disabled="!vm.crudPermissions.canEdit"
 
 808                   <span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span>
 
 811                   ng-messages="queueForm['wrapuptime'].$error"
 
 812                   ng-show="queueForm['wrapuptime'].$touched"
 
 815                   <div ng-message="required">
 
 816                     <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED"
 
 817                       >WrapupTime field is required</span
 
 820                   <div ng-message="min">
 
 822                       translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 823                       >WrapupTime must be a valid greater or equal than</span
 
 828               </md-input-container>
 
 830                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 833                 <label translate="MOTIONDIALER.WEIGHT">Weight</label>
 
 837                   ng-model="vm.queueCampaign.weight"
 
 839                   ng-disabled="!vm.crudPermissions.canEdit"
 
 843                   <span translate="MOTIONDIALER.HELP.WEIGHT"></span>
 
 846                   ng-messages="queueForm['weight'].$error"
 
 847                   ng-show="queueForm['weight'].$touched"
 
 850                   <div ng-message="required">
 
 851                     <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED"
 
 852                       >Weight field is required</span
 
 855                   <div ng-message="min">
 
 857                       translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 858                       >Weight must be a valid greater or equal than</span
 
 863               </md-input-container>
 
 865                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 868                 <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>
 
 871                   ng-model="vm.queueCampaign.musiconhold"
 
 872                   ng-disabled="!vm.crudPermissions.canEdit"
 
 875                     ng-value="musiconhold.name"
 
 876                     ng-repeat="musiconhold in vm.musiconholds"
 
 877                     ng-disabled="musiconhold.canSelect === false"
 
 878                     >{{ musiconhold.name }}</md-option
 
 882                   <span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span>
 
 885                   ng-messages="queueForm['musiconhold'].$error"
 
 886                   ng-show="queueForm['musiconhold'].$touched"
 
 889                   <div ng-message="required">
 
 890                     <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED"
 
 891                       >MusicOnHold field is required</span
 
 895               </md-input-container>
 
 897                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 900                 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT"
 
 901                   >CallySquareProject</label
 
 904                   name="dialQueueProject"
 
 905                   ng-model="vm.queueCampaign.dialQueueProject"
 
 906                   ng-disabled="!vm.crudPermissions.canEdit"
 
 908                   <md-option ng-value="null">None</md-option>
 
 910                     ng-value="dialQueueProject.name"
 
 911                     ng-repeat="dialQueueProject in vm.projects"
 
 912                     ng-disabled="dialQueueProject.canSelect === false"
 
 913                     >{{ dialQueueProject.name }}</md-option
 
 917                   <span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span>
 
 920                   ng-messages="queueForm['dialQueueProject'].$error"
 
 921                   ng-show="queueForm['dialQueueProject'].$touched"
 
 924                   <div ng-message="required">
 
 926                       translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED"
 
 927                       >CallySquareProject field is required</span
 
 931               </md-input-container>
 
 933                 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
 936                 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2"
 
 937                   >CallySquareProject2</label
 
 940                   name="dialQueueProject2"
 
 941                   ng-model="vm.queueCampaign.dialQueueProject2"
 
 942                   ng-disabled="!vm.crudPermissions.canEdit"
 
 944                   <md-option ng-value="null">None</md-option>
 
 946                     ng-value="dialQueueProject2.name"
 
 947                     ng-repeat="dialQueueProject2 in vm.projects"
 
 948                     ng-disabled="dialQueueProject2.canSelect === false"
 
 949                     >{{ dialQueueProject2.name }}</md-option
 
 954                     translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"
 
 958                   ng-messages="queueForm['dialQueueProject2'].$error"
 
 959                   ng-show="queueForm['dialQueueProject2'].$touched"
 
 962                   <div ng-message="required">
 
 964                       translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED"
 
 965                       >CallySquareProject2 field is required</span
 
 969               </md-input-container>
 
 971                 ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
 
 974                 <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW"
 
 975                   >CallySquareProjectPreview</label
 
 978                   name="dialQueueProject"
 
 979                   ng-model="vm.queueCampaign.dialQueueProject"
 
 980                   ng-disabled="!vm.crudPermissions.canEdit"
 
 982                   <md-option ng-value="null">None</md-option>
 
 984                     ng-value="dialQueueProject.name"
 
 985                     ng-repeat="dialQueueProject in vm.projects"
 
 986                     ng-disabled="dialQueueProject.canSelect === false"
 
 987                     >{{ dialQueueProject.name }}</md-option
 
 992                     translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"
 
 996                   ng-messages="queueForm['dialQueueProject'].$error"
 
 997                   ng-show="queueForm['dialQueueProject'].$touched"
 
1000                   <div ng-message="required">
 
1002                       translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED"
 
1003                       >CallySquareProjectPreview field is required</span
 
1007               </md-input-container>
 
1009                 ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
 
1012                 <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2"
 
1013                   >CallySquareProjectPreview2</label
 
1016                   name="dialQueueProject2"
 
1017                   ng-model="vm.queueCampaign.dialQueueProject2"
 
1018                   ng-disabled="!vm.crudPermissions.canEdit"
 
1020                   <md-option ng-value="null">None</md-option>
 
1022                     ng-value="dialQueueProject2.name"
 
1023                     ng-repeat="dialQueueProject2 in vm.projects"
 
1024                     ng-disabled="dialQueueProject2.canSelect === false"
 
1025                     >{{ dialQueueProject2.name }}</md-option
 
1030                     translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"
 
1034                   ng-messages="queueForm['dialQueueProject2'].$error"
 
1035                   ng-show="queueForm['dialQueueProject2'].$touched"
 
1038                   <div ng-message="required">
 
1040                       translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED"
 
1041                       >CallySquareProjectPreview2 field is required</span
 
1045               </md-input-container>
 
1047                 ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power')"
 
1051                   ng-model="vm.queueCampaign.dialAgiAfterHangupAgent"
 
1052                   aria-label="RunIfHangupAgent"
 
1053                   ng-disabled="!vm.crudPermissions.canEdit"
 
1054                   ><span translate="MOTIONDIALER.RUNIFHANGUPAGENT"
 
1055                     >RunIfHangupAgent</span
 
1060                   <span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span>
 
1062               </md-input-container>
 
1066             class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp"
 
1068             <div class="pb-16" layout="row" layout-align="start center">
 
1069               <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">
 
1073             <form name="originateForm" novalidate>
 
1074               <md-input-container class="md-block">
 
1075                 <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME"
 
1076                   >OriginateCallerIdName</label
 
1080                   name="dialOriginateCallerIdName"
 
1081                   ng-model="vm.queueCampaign.dialOriginateCallerIdName"
 
1083                   ng-disabled="!vm.crudPermissions.canEdit"
 
1088                     translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"
 
1092                   ng-messages="originateForm['dialOriginateCallerIdName'].$error"
 
1093                   ng-show="originateForm['dialOriginateCallerIdName'].$touched"
 
1096                   <div ng-message="required">
 
1098                       translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED"
 
1099                       >OriginateCallerIdName field is required</span
 
1103               </md-input-container>
 
1104               <md-input-container class="md-block">
 
1105                 <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER"
 
1106                   >OriginateCallerIdNumber</label
 
1110                   name="dialOriginateCallerIdNumber"
 
1111                   ng-model="vm.queueCampaign.dialOriginateCallerIdNumber"
 
1112                   ng-disabled="!vm.crudPermissions.canEdit"
 
1117                     translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"
 
1121                   ng-messages="originateForm['dialOriginateCallerIdNumber'].$error"
 
1122                   ng-show="originateForm['dialOriginateCallerIdNumber'].$touched"
 
1125                   <div ng-message="required">
 
1127                       translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED"
 
1128                       >OriginateCallerIdNumber field is required</span
 
1132               </md-input-container>
 
1133               <md-input-container class="md-block">
 
1134                 <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER"
 
1135                   >RandomLastDigitCallerIdNumber</label
 
1139                   name="dialRandomLastDigitCallerIdNumber"
 
1140                   ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber"
 
1144                   ng-disabled="!vm.crudPermissions.canEdit"
 
1149                     translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"
 
1153                   ng-messages="originateForm['dialRandomLastDigitCallerIdNumber'].$error"
 
1154                   ng-show="originateForm['dialRandomLastDigitCallerIdNumber'].$touched"
 
1157                   <div ng-message="required">
 
1159                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED"
 
1160                       >RandomLastDigitCallerIdNumber field is required</span
 
1163                   <div ng-message="min">
 
1165                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1166                       >RandomLastDigitCallerIdNumber must be a valid greater or
 
1171                   <div ng-message="max">
 
1173                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1174                       >RandomLastDigitCallerIdNumber must be a valid greater or
 
1180               </md-input-container>
 
1181               <md-input-container class="md-block">
 
1182                 <label translate="MOTIONDIALER.ORIGINATETIMEOUT"
 
1183                   >OriginateTimeout</label
 
1187                   name="dialOriginateTimeout"
 
1188                   ng-model="vm.queueCampaign.dialOriginateTimeout"
 
1192                   ng-disabled="!vm.crudPermissions.canEdit"
 
1196                   <span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span>
 
1199                   ng-messages="originateForm['dialOriginateTimeout'].$error"
 
1200                   ng-show="originateForm['dialOriginateTimeout'].$touched"
 
1203                   <div ng-message="required">
 
1205                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED"
 
1206                       >OriginateTimeout field is required</span
 
1209                   <div ng-message="min">
 
1211                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1212                       >OriginateTimeout must be a valid greater or equal
 
1217                   <div ng-message="max">
 
1219                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1220                       >OriginateTimeout must be a valid greater or equal
 
1226               </md-input-container>
 
1227               <md-input-container class="md-block">
 
1228                 <label translate="MOTIONDIALER.PREFIX">Prefix</label>
 
1232                   ng-model="vm.queueCampaign.dialPrefix"
 
1233                   ng-pattern="/^\d+$/"
 
1234                   ng-disabled="!vm.crudPermissions.canEdit"
 
1238                   <span translate="MOTIONDIALER.HELP.PREFIX"></span>
 
1241                   ng-messages="originateForm['dialPrefix'].$error"
 
1242                   ng-show="originateForm['dialPrefix'].$touched"
 
1245                   <div ng-message="required">
 
1246                     <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED"
 
1247                       >Prefix field is required</span
 
1250                   <div ng-message="pattern">
 
1252                       translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN"
 
1253                       translate-values="{ regex: '/^\d+$/' }"
 
1254                       >Prefix must be valid pattern
 
1258               </md-input-container>
 
1265           <span translate="MOTIONDIALER.RETRYANDFREQUENCY"
 
1266             >RETRYANDFREQUENCY</span
 
1271             class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp"
 
1273             <div class="pb-16" layout="row" layout-align="start center">
 
1274               <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">
 
1278             <form name="globalForm" novalidate>
 
1279               <md-input-container class="md-block">
 
1280                 <label translate="MOTIONDIALER.GLOBALMAXRETRY"
 
1281                   >GlobalMaxRetry</label
 
1285                   name="dialGlobalMaxRetry"
 
1286                   ng-model="vm.queueCampaign.dialGlobalMaxRetry"
 
1291                   ng-disabled="!vm.crudPermissions.canEdit"
 
1295                   <span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span>
 
1298                   ng-messages="globalForm['dialGlobalMaxRetry'].$error"
 
1299                   ng-show="globalForm['dialGlobalMaxRetry'].$touched"
 
1302                   <div ng-message="required">
 
1304                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED"
 
1305                       >GlobalMaxRetry field is required</span
 
1308                   <div ng-message="min">
 
1310                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1311                       >GlobalMaxRetry must be a valid greater or equal
 
1316                   <div ng-message="max">
 
1318                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1319                       >GlobalMaxRetry must be a valid greater or equal
 
1325               </md-input-container>
 
1329             class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp"
 
1331             <div class="pb-16" layout="row" layout-align="start center">
 
1333                 class="h2 secondary-text"
 
1334                 translate="MOTIONDIALER.CONGESTION"
 
1339             <form name="congestionForm" novalidate>
 
1340               <md-input-container class="md-block">
 
1341                 <label translate="MOTIONDIALER.CONGESTIONMAXRETRY"
 
1342                   >CongestionMaxRetry</label
 
1346                   name="dialCongestionMaxRetry"
 
1347                   ng-model="vm.queueCampaign.dialCongestionMaxRetry"
 
1352                   ng-disabled="!vm.crudPermissions.canEdit"
 
1356                   <span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span>
 
1359                   ng-messages="congestionForm['dialCongestionMaxRetry'].$error"
 
1360                   ng-show="congestionForm['dialCongestionMaxRetry'].$touched"
 
1363                   <div ng-message="required">
 
1365                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED"
 
1366                       >CongestionMaxRetry field is required</span
 
1369                   <div ng-message="min">
 
1371                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1372                       >CongestionMaxRetry must be a valid greater or equal
 
1377                   <div ng-message="max">
 
1379                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1380                       >CongestionMaxRetry must be a valid greater or equal
 
1386               </md-input-container>
 
1387               <md-input-container class="md-block">
 
1388                 <label translate="MOTIONDIALER.CONGESTIONRETRYTIME"
 
1389                   >CongestionRetryTime</label
 
1393                   name="dialCongestionRetryFrequency"
 
1394                   ng-model="vm.queueCampaign.dialCongestionRetryFrequency"
 
1398                   ng-disabled="!vm.crudPermissions.canEdit"
 
1403                     translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"
 
1407                   ng-messages="congestionForm['dialCongestionRetryFrequency'].$error"
 
1408                   ng-show="congestionForm['dialCongestionRetryFrequency'].$touched"
 
1411                   <div ng-message="required">
 
1413                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED"
 
1414                       >CongestionRetryTime field is required</span
 
1417                   <div ng-message="min">
 
1419                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1420                       >CongestionRetryTime must be a valid greater or equal
 
1425                   <div ng-message="max">
 
1427                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1428                       >CongestionRetryTime must be a valid greater or equal
 
1434               </md-input-container>
 
1438             class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp"
 
1440             <div class="pb-16" layout="row" layout-align="start center">
 
1441               <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">
 
1445             <form name="busyForm" novalidate>
 
1446               <md-input-container class="md-block">
 
1447                 <label translate="MOTIONDIALER.BUSYMAXRETRY"
 
1448                   >BusyMaxRetry</label
 
1452                   name="dialBusyMaxRetry"
 
1453                   ng-model="vm.queueCampaign.dialBusyMaxRetry"
 
1458                   ng-disabled="!vm.crudPermissions.canEdit"
 
1462                   <span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span>
 
1465                   ng-messages="busyForm['dialBusyMaxRetry'].$error"
 
1466                   ng-show="busyForm['dialBusyMaxRetry'].$touched"
 
1469                   <div ng-message="required">
 
1470                     <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED"
 
1471                       >BusyMaxRetry field is required</span
 
1474                   <div ng-message="min">
 
1476                       translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1477                       >BusyMaxRetry must be a valid greater or equal than</span
 
1481                   <div ng-message="max">
 
1483                       translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1484                       >BusyMaxRetry must be a valid greater or equal than</span
 
1489               </md-input-container>
 
1490               <md-input-container class="md-block">
 
1491                 <label translate="MOTIONDIALER.BUSYRETRYTIME"
 
1492                   >BusyRetryTime</label
 
1496                   name="dialBusyRetryFrequency"
 
1497                   ng-model="vm.queueCampaign.dialBusyRetryFrequency"
 
1501                   ng-disabled="!vm.crudPermissions.canEdit"
 
1505                   <span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span>
 
1508                   ng-messages="busyForm['dialBusyRetryFrequency'].$error"
 
1509                   ng-show="busyForm['dialBusyRetryFrequency'].$touched"
 
1512                   <div ng-message="required">
 
1513                     <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED"
 
1514                       >BusyRetryTime field is required</span
 
1517                   <div ng-message="min">
 
1519                       translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1520                       >BusyRetryTime must be a valid greater or equal than</span
 
1524                   <div ng-message="max">
 
1526                       translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1527                       >BusyRetryTime must be a valid greater or equal than</span
 
1532               </md-input-container>
 
1536             class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp"
 
1538             <div class="pb-16" layout="row" layout-align="start center">
 
1539               <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">
 
1543             <form name="noanswerForm" novalidate>
 
1544               <md-input-container class="md-block">
 
1545                 <label translate="MOTIONDIALER.NOANSWERMAXRETRY"
 
1546                   >NoAnswerMaxRetry</label
 
1550                   name="dialNoAnswerMaxRetry"
 
1551                   ng-model="vm.queueCampaign.dialNoAnswerMaxRetry"
 
1556                   ng-disabled="!vm.crudPermissions.canEdit"
 
1560                   <span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span>
 
1563                   ng-messages="noanswerForm['dialNoAnswerMaxRetry'].$error"
 
1564                   ng-show="noanswerForm['dialNoAnswerMaxRetry'].$touched"
 
1567                   <div ng-message="required">
 
1569                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED"
 
1570                       >NoAnswerMaxRetry field is required</span
 
1573                   <div ng-message="min">
 
1575                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1576                       >NoAnswerMaxRetry must be a valid greater or equal
 
1581                   <div ng-message="max">
 
1583                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1584                       >NoAnswerMaxRetry must be a valid greater or equal
 
1590               </md-input-container>
 
1591               <md-input-container class="md-block">
 
1592                 <label translate="MOTIONDIALER.NOANSWERRETRYTIME"
 
1593                   >NoAnswerRetryTime</label
 
1597                   name="dialNoAnswerRetryFrequency"
 
1598                   ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency"
 
1602                   ng-disabled="!vm.crudPermissions.canEdit"
 
1606                   <span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span>
 
1609                   ng-messages="noanswerForm['dialNoAnswerRetryFrequency'].$error"
 
1610                   ng-show="noanswerForm['dialNoAnswerRetryFrequency'].$touched"
 
1613                   <div ng-message="required">
 
1615                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED"
 
1616                       >NoAnswerRetryTime field is required</span
 
1619                   <div ng-message="min">
 
1621                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1622                       >NoAnswerRetryTime must be a valid greater or equal
 
1627                   <div ng-message="max">
 
1629                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1630                       >NoAnswerRetryTime must be a valid greater or equal
 
1636               </md-input-container>
 
1640             class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp"
 
1642             <div class="pb-16" layout="row" layout-align="start center">
 
1644                 class="h2 secondary-text"
 
1645                 translate="MOTIONDIALER.NOSUCHNUMBER"
 
1650             <form name="nosuchnumberForm" novalidate>
 
1651               <md-input-container class="md-block">
 
1652                 <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY"
 
1653                   >NoSuchNumberMaxRetry</label
 
1657                   name="dialNoSuchNumberMaxRetry"
 
1658                   ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry"
 
1663                   ng-disabled="!vm.crudPermissions.canEdit"
 
1668                     translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"
 
1672                   ng-messages="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$error"
 
1673                   ng-show="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$touched"
 
1676                   <div ng-message="required">
 
1678                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED"
 
1679                       >NoSuchNumberMaxRetry field is required</span
 
1682                   <div ng-message="min">
 
1684                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1685                       >NoSuchNumberMaxRetry must be a valid greater or equal
 
1690                   <div ng-message="max">
 
1692                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1693                       >NoSuchNumberMaxRetry must be a valid greater or equal
 
1699               </md-input-container>
 
1700               <md-input-container class="md-block">
 
1701                 <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME"
 
1702                   >NoSuchNumberRetryTime</label
 
1706                   name="dialNoSuchNumberRetryFrequency"
 
1707                   ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency"
 
1711                   ng-disabled="!vm.crudPermissions.canEdit"
 
1716                     translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"
 
1720                   ng-messages="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$error"
 
1721                   ng-show="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$touched"
 
1724                   <div ng-message="required">
 
1726                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED"
 
1727                       >NoSuchNumberRetryTime field is required</span
 
1730                   <div ng-message="min">
 
1732                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1733                       >NoSuchNumberRetryTime must be a valid greater or equal
 
1738                   <div ng-message="max">
 
1740                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1741                       >NoSuchNumberRetryTime must be a valid greater or equal
 
1747               </md-input-container>
 
1751             class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp"
 
1753             <div class="pb-16" layout="row" layout-align="start center">
 
1754               <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">
 
1758             <form name="dropForm" novalidate>
 
1759               <md-input-container class="md-block">
 
1760                 <label translate="MOTIONDIALER.DROPMAXRETRY"
 
1761                   >DropMaxRetry</label
 
1765                   name="dialDropMaxRetry"
 
1766                   ng-model="vm.queueCampaign.dialDropMaxRetry"
 
1771                   ng-disabled="!vm.crudPermissions.canEdit"
 
1775                   <span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span>
 
1778                   ng-messages="dropForm['dialDropMaxRetry'].$error"
 
1779                   ng-show="dropForm['dialDropMaxRetry'].$touched"
 
1782                   <div ng-message="required">
 
1783                     <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED"
 
1784                       >DropMaxRetry field is required</span
 
1787                   <div ng-message="min">
 
1789                       translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1790                       >DropMaxRetry must be a valid greater or equal than</span
 
1794                   <div ng-message="max">
 
1796                       translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1797                       >DropMaxRetry must be a valid greater or equal than</span
 
1802               </md-input-container>
 
1803               <md-input-container class="md-block">
 
1804                 <label translate="MOTIONDIALER.DROPRETRYTIME"
 
1805                   >DropRetryTime</label
 
1809                   name="dialDropRetryFrequency"
 
1810                   ng-model="vm.queueCampaign.dialDropRetryFrequency"
 
1814                   ng-disabled="!vm.crudPermissions.canEdit"
 
1818                   <span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span>
 
1821                   ng-messages="dropForm['dialDropRetryFrequency'].$error"
 
1822                   ng-show="dropForm['dialDropRetryFrequency'].$touched"
 
1825                   <div ng-message="required">
 
1826                     <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED"
 
1827                       >DropRetryTime field is required</span
 
1830                   <div ng-message="min">
 
1832                       translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1833                       >DropRetryTime must be a valid greater or equal than</span
 
1837                   <div ng-message="max">
 
1839                       translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1840                       >DropRetryTime must be a valid greater or equal than</span
 
1845               </md-input-container>
 
1849             class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp"
 
1851             <div class="pb-16" layout="row" layout-align="start center">
 
1852               <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">
 
1856             <form name="abandonedForm" novalidate>
 
1857               <md-input-container class="md-block">
 
1858                 <label translate="MOTIONDIALER.ABANDONEDMAXRETRY"
 
1859                   >AbandonedMaxRetry</label
 
1863                   name="dialAbandonedMaxRetry"
 
1864                   ng-model="vm.queueCampaign.dialAbandonedMaxRetry"
 
1869                   ng-disabled="!vm.crudPermissions.canEdit"
 
1873                   <span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span>
 
1876                   ng-messages="abandonedForm['dialAbandonedMaxRetry'].$error"
 
1877                   ng-show="abandonedForm['dialAbandonedMaxRetry'].$touched"
 
1880                   <div ng-message="required">
 
1882                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED"
 
1883                       >AbandonedMaxRetry field is required</span
 
1886                   <div ng-message="min">
 
1888                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1889                       >AbandonedMaxRetry must be a valid greater or equal
 
1894                   <div ng-message="max">
 
1896                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1897                       >AbandonedMaxRetry must be a valid greater or equal
 
1903               </md-input-container>
 
1904               <md-input-container class="md-block">
 
1905                 <label translate="MOTIONDIALER.ABANDONEDRETRYTIME"
 
1906                   >AbandonedRetryTime</label
 
1910                   name="dialAbandonedRetryFrequency"
 
1911                   ng-model="vm.queueCampaign.dialAbandonedRetryFrequency"
 
1915                   ng-disabled="!vm.crudPermissions.canEdit"
 
1919                   <span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span>
 
1922                   ng-messages="abandonedForm['dialAbandonedRetryFrequency'].$error"
 
1923                   ng-show="abandonedForm['dialAbandonedRetryFrequency'].$touched"
 
1926                   <div ng-message="required">
 
1928                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED"
 
1929                       >AbandonedRetryTime field is required</span
 
1932                   <div ng-message="min">
 
1934                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1935                       >AbandonedRetryTime must be a valid greater or equal
 
1940                   <div ng-message="max">
 
1942                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1943                       >AbandonedRetryTime must be a valid greater or equal
 
1949               </md-input-container>
 
1953             class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp"
 
1955             <div class="pb-16" layout="row" layout-align="start center">
 
1956               <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">
 
1960             <form name="machineForm" novalidate>
 
1961               <md-input-container class="md-block">
 
1962                 <label translate="MOTIONDIALER.MACHINEMAXRETRY"
 
1963                   >MachineMaxRetry</label
 
1967                   name="dialMachineMaxRetry"
 
1968                   ng-model="vm.queueCampaign.dialMachineMaxRetry"
 
1973                   ng-disabled="!vm.crudPermissions.canEdit"
 
1977                   <span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span>
 
1980                   ng-messages="machineForm['dialMachineMaxRetry'].$error"
 
1981                   ng-show="machineForm['dialMachineMaxRetry'].$touched"
 
1984                   <div ng-message="required">
 
1986                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED"
 
1987                       >MachineMaxRetry field is required</span
 
1990                   <div ng-message="min">
 
1992                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1993                       >MachineMaxRetry must be a valid greater or equal
 
1998                   <div ng-message="max">
 
2000                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
2001                       >MachineMaxRetry must be a valid greater or equal
 
2007               </md-input-container>
 
2008               <md-input-container class="md-block">
 
2009                 <label translate="MOTIONDIALER.MACHINERETRYTIME"
 
2010                   >MachineRetryTime</label
 
2014                   name="dialMachineRetryFrequency"
 
2015                   ng-model="vm.queueCampaign.dialMachineRetryFrequency"
 
2019                   ng-disabled="!vm.crudPermissions.canEdit"
 
2023                   <span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span>
 
2026                   ng-messages="machineForm['dialMachineRetryFrequency'].$error"
 
2027                   ng-show="machineForm['dialMachineRetryFrequency'].$touched"
 
2030                   <div ng-message="required">
 
2032                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED"
 
2033                       >MachineRetryTime field is required</span
 
2036                   <div ng-message="min">
 
2038                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2039                       >MachineRetryTime must be a valid greater or equal
 
2044                   <div ng-message="max">
 
2046                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
2047                       >MachineRetryTime must be a valid greater or equal
 
2053               </md-input-container>
 
2057             class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp"
 
2059             <div class="pb-16" layout="row" layout-align="start center">
 
2061                 class="h2 secondary-text"
 
2062                 translate="MOTIONDIALER.AGENTREJECT"
 
2067             <form name="agentrejectForm" novalidate>
 
2068               <md-input-container class="md-block">
 
2069                 <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY"
 
2070                   >AgentRejectMaxRetry</label
 
2074                   name="dialAgentRejectMaxRetry"
 
2075                   ng-model="vm.queueCampaign.dialAgentRejectMaxRetry"
 
2080                   ng-disabled="!vm.crudPermissions.canEdit"
 
2085                     translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"
 
2089                   ng-messages="agentrejectForm['dialAgentRejectMaxRetry'].$error"
 
2090                   ng-show="agentrejectForm['dialAgentRejectMaxRetry'].$touched"
 
2093                   <div ng-message="required">
 
2095                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED"
 
2096                       >AgentRejectMaxRetry field is required</span
 
2099                   <div ng-message="min">
 
2101                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2102                       >AgentRejectMaxRetry must be a valid greater or equal
 
2107                   <div ng-message="max">
 
2109                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
2110                       >AgentRejectMaxRetry must be a valid greater or equal
 
2116               </md-input-container>
 
2117               <md-input-container class="md-block">
 
2118                 <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME"
 
2119                   >AgentRejectRetryTime</label
 
2123                   name="dialAgentRejectRetryFrequency"
 
2124                   ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency"
 
2128                   ng-disabled="!vm.crudPermissions.canEdit"
 
2133                     translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"
 
2137                   ng-messages="agentrejectForm['dialAgentRejectRetryFrequency'].$error"
 
2138                   ng-show="agentrejectForm['dialAgentRejectRetryFrequency'].$touched"
 
2141                   <div ng-message="required">
 
2143                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED"
 
2144                       >AgentRejectRetryTime field is required</span
 
2147                   <div ng-message="min">
 
2149                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2150                       >AgentRejectRetryTime must be a valid greater or equal
 
2155                   <div ng-message="max">
 
2157                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
2158                       >AgentRejectRetryTime must be a valid greater or equal
 
2164               </md-input-container>
 
2171           <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>
 
2175             ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
2176             class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp"
 
2178             <div class="pb-16" layout="row" layout-align="start center">
 
2179               <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">
 
2183             <form name="advancedForm" novalidate>
 
2184               <md-input-container class="md-block">
 
2186                   ng-model="vm.queueCampaign.acw"
 
2187                   aria-label="AfterCallWork"
 
2188                   ng-disabled="!vm.crudPermissions.canEdit"
 
2189                   ><span translate="MOTIONDIALER.AFTERCALLWORK"
 
2190                     >AfterCallWork</span
 
2195                   <span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span>
 
2197               </md-input-container>
 
2198               <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">
 
2199                 <label translate="MOTIONDIALER.AFTERCALLWORKDURATION"
 
2200                   >AfterCallWorkDuration</label
 
2205                   ng-model="vm.queueCampaign.acwTimeout"
 
2208                   ng-disabled="!vm.crudPermissions.canEdit"
 
2213                     translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"
 
2217                   ng-messages="advancedForm['acwTimeout'].$error"
 
2218                   ng-show="advancedForm['acwTimeout'].$touched"
 
2221                   <div ng-message="required">
 
2223                       translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED"
 
2224                       >AfterCallWorkDuration field is required</span
 
2227                   <div ng-message="min">
 
2229                       translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2230                       >AfterCallWorkDuration must be a valid greater or equal
 
2236               </md-input-container>
 
2237               <md-input-container class="md-block">
 
2238                 <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>
 
2241                   ng-model="vm.queueCampaign.autopause"
 
2242                   ng-disabled="!vm.crudPermissions.canEdit"
 
2244                   <md-option ng-value="'all'">
 
2245                     {{ 'MOTIONDIALER.YES' | translate }}
 
2248                   <md-option ng-value="'no'">
 
2249                     {{ 'MOTIONDIALER.NO' | translate }}
 
2253                   <span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span>
 
2256                   ng-messages="advancedForm['autopause'].$error"
 
2257                   ng-show="advancedForm['autopause'].$touched"
 
2260                   <div ng-message="required">
 
2261                     <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED"
 
2262                       >AutoPause field is required</span
 
2266               </md-input-container>
 
2267               <md-input-container class="md-block">
 
2268                 <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>
 
2271                   ng-model="vm.queueCampaign.ringinuse"
 
2272                   ng-disabled="!vm.crudPermissions.canEdit"
 
2274                   <md-option ng-value="'yes'">
 
2275                     {{ 'MOTIONDIALER.YES' | translate }}
 
2278                   <md-option ng-value="'no'">
 
2279                     {{ 'MOTIONDIALER.NO' | translate }}
 
2283                   <span translate="MOTIONDIALER.HELP.RINGINUSE"></span>
 
2286                   ng-messages="advancedForm['ringinuse'].$error"
 
2287                   ng-show="advancedForm['ringinuse'].$touched"
 
2290                   <div ng-message="required">
 
2291                     <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED"
 
2292                       >RingInUse field is required</span
 
2296               </md-input-container>
 
2297               <md-input-container class="md-block">
 
2298                 <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>
 
2302                   ng-model="vm.queueCampaign.memberdelay"
 
2304                   ng-disabled="!vm.crudPermissions.canEdit"
 
2308                   <span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span>
 
2311                   ng-messages="advancedForm['memberdelay'].$error"
 
2312                   ng-show="advancedForm['memberdelay'].$touched"
 
2315                   <div ng-message="required">
 
2316                     <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED"
 
2317                       >MemberDelay field is required</span
 
2320                   <div ng-message="min">
 
2322                       translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2323                       >MemberDelay must be a valid greater or equal than</span
 
2328               </md-input-container>
 
2329               <md-input-container class="md-block">
 
2330                 <label translate="MOTIONDIALER.TIMEOUTRESTART"
 
2331                   >TimeoutRestart</label
 
2334                   name="timeoutrestart"
 
2335                   ng-model="vm.queueCampaign.timeoutrestart"
 
2336                   ng-disabled="!vm.crudPermissions.canEdit"
 
2338                   <md-option ng-value="'yes'">
 
2339                     {{ 'MOTIONDIALER.YES' | translate }}
 
2342                   <md-option ng-value="'no'">
 
2343                     {{ 'MOTIONDIALER.NO' | translate }}
 
2347                   <span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span>
 
2350                   ng-messages="advancedForm['timeoutrestart'].$error"
 
2351                   ng-show="advancedForm['timeoutrestart'].$touched"
 
2354                   <div ng-message="required">
 
2356                       translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED"
 
2357                       >TimeoutRestart field is required</span
 
2361               </md-input-container>
 
2362               <md-input-container class="md-block">
 
2363                 <label translate="MOTIONDIALER.MONITORFORMAT"
 
2364                   >MonitorFormat</label
 
2367                   name="monitor_format"
 
2368                   ng-model="vm.queueCampaign.monitor_format"
 
2369                   ng-disabled="!vm.crudPermissions.canEdit"
 
2371                   <md-option ng-value="''">Inactive</md-option>
 
2372                   <md-option ng-value="'wav'">wav</md-option>
 
2373                   <md-option ng-value="'wav49'">wav49</md-option>
 
2374                   <md-option ng-value="'gsm'">gsm</md-option>
 
2377                   <span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span>
 
2380                   ng-messages="advancedForm['monitor_format'].$error"
 
2381                   ng-show="advancedForm['monitor_format'].$touched"
 
2384                   <div ng-message="required">
 
2385                     <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED"
 
2386                       >MonitorFormat field is required</span
 
2390               </md-input-container>
 
2391               <md-input-container class="md-block">
 
2392                 <label translate="MOTIONDIALER.CONTEXT">Context</label>
 
2396                   ng-model="vm.queueCampaign.context"
 
2397                   ng-disabled="!vm.crudPermissions.canEdit"
 
2401                   <span translate="MOTIONDIALER.HELP.CONTEXT"></span>
 
2404                   ng-messages="advancedForm['context'].$error"
 
2405                   ng-show="advancedForm['context'].$touched"
 
2408                   <div ng-message="required">
 
2409                     <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED"
 
2410                       >Context field is required</span
 
2414               </md-input-container>
 
2415               <md-input-container class="md-block">
 
2416                 <label translate="MOTIONDIALER.SETINTERFACEVARIABLES"
 
2417                   >SetInterfaceVariables</label
 
2420                   name="setinterfacevar"
 
2421                   ng-model="vm.queueCampaign.setinterfacevar"
 
2422                   ng-disabled="!vm.crudPermissions.canEdit"
 
2424                   <md-option ng-value="'yes'">
 
2425                     {{ 'MOTIONDIALER.YES' | translate }}
 
2428                   <md-option ng-value="'no'">
 
2429                     {{ 'MOTIONDIALER.NO' | translate }}
 
2434                     translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"
 
2438                   ng-messages="advancedForm['setinterfacevar'].$error"
 
2439                   ng-show="advancedForm['setinterfacevar'].$touched"
 
2442                   <div ng-message="required">
 
2444                       translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED"
 
2445                       >SetInterfaceVariables field is required</span
 
2449               </md-input-container>
 
2450               <md-input-container class="md-block">
 
2451                 <label translate="MOTIONDIALER.SETQUEUEVARIABLES"
 
2452                   >SetQueueVariables</label
 
2456                   ng-model="vm.queueCampaign.setqueuevar"
 
2457                   ng-disabled="!vm.crudPermissions.canEdit"
 
2459                   <md-option ng-value="'yes'">
 
2460                     {{ 'MOTIONDIALER.YES' | translate }}
 
2463                   <md-option ng-value="'no'">
 
2464                     {{ 'MOTIONDIALER.NO' | translate }}
 
2468                   <span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span>
 
2471                   ng-messages="advancedForm['setqueuevar'].$error"
 
2472                   ng-show="advancedForm['setqueuevar'].$touched"
 
2475                   <div ng-message="required">
 
2477                       translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED"
 
2478                       >SetQueueVariables field is required</span
 
2482               </md-input-container>
 
2483               <md-input-container class="md-block">
 
2484                 <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES"
 
2485                   >SetQueueEntryVariables</label
 
2488                   name="setqueueentryvar"
 
2489                   ng-model="vm.queueCampaign.setqueueentryvar"
 
2490                   ng-disabled="!vm.crudPermissions.canEdit"
 
2492                   <md-option ng-value="'yes'">
 
2493                     {{ 'MOTIONDIALER.YES' | translate }}
 
2496                   <md-option ng-value="'no'">
 
2497                     {{ 'MOTIONDIALER.NO' | translate }}
 
2502                     translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"
 
2506                   ng-messages="advancedForm['setqueueentryvar'].$error"
 
2507                   ng-show="advancedForm['setqueueentryvar'].$touched"
 
2510                   <div ng-message="required">
 
2512                       translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED"
 
2513                       >SetQueueEntryVariables field is required</span
 
2517               </md-input-container>
 
2518               <md-input-container class="md-block">
 
2519                 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
 
2520                   >DialOrderByScheduledAt</label
 
2523                   name="dialOrderByScheduledAt"
 
2524                   ng-model="vm.queueCampaign.dialOrderByScheduledAt"
 
2525                   ng-disabled="!vm.crudPermissions.canEdit"
 
2527                   <md-option ng-value="'DESC'">
 
2528                     {{ 'MOTIONDIALER.DESC' | translate }}
 
2531                   <md-option ng-value="'ASC'">
 
2532                     {{ 'MOTIONDIALER.ASC' | translate }}
 
2537                     translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
 
2541                   ng-messages="advancedForm['dialOrderByScheduledAt'].$error"
 
2542                   ng-show="advancedForm['dialOrderByScheduledAt'].$touched"
 
2545                   <div ng-message="required">
 
2547                       translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
 
2548                       >DialOrderByScheduledAt field is required</span
 
2552               </md-input-container>
 
2553               <md-input-container class="md-block">
 
2555                   ng-model="vm.queueCampaign.mandatoryDisposition"
 
2556                   aria-label="MandatoryDisposition"
 
2557                   ng-disabled="!vm.crudPermissions.canEdit"
 
2558                   ><span translate="MOTIONDIALER.MANDATORYDISPOSITION"
 
2559                     >MandatoryDisposition</span
 
2562               </md-input-container>
 
2564                 ng-if="vm.queueCampaign.mandatoryDisposition"
 
2567                 <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID"
 
2568                   >MandatoryDispositionPauseId</label
 
2571                   name="mandatoryDispositionPauseId"
 
2572                   ng-model="vm.queueCampaign.mandatoryDispositionPauseId"
 
2574                   ng-disabled="!vm.crudPermissions.canEdit"
 
2577                     ng-value="mandatoryDispositionPauseId.id"
 
2578                     ng-repeat="mandatoryDispositionPauseId in vm.pauses"
 
2579                     ng-disabled="mandatoryDispositionPauseId.canSelect === false"
 
2580                     >{{ mandatoryDispositionPauseId.name }}</md-option
 
2585                     translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"
 
2589                   ng-messages="advancedForm['mandatoryDispositionPauseId'].$error"
 
2590                   ng-show="advancedForm['mandatoryDispositionPauseId'].$touched"
 
2593                   <div ng-message="required">
 
2595                       translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED"
 
2596                       >MandatoryDispositionPauseId field is required</span
 
2600               </md-input-container>
 
2604             ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
 
2605             class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp"
 
2607             <div class="pb-16" layout="row" layout-align="start center">
 
2609                 class="h2 secondary-text"
 
2610                 translate="MOTIONDIALER.ADVANCEDPREVIEW"
 
2615             <form name="advancedpreviewForm" novalidate>
 
2616               <md-input-container class="md-block">
 
2618                   ng-model="vm.queueCampaign.acw"
 
2619                   aria-label="AfterCallWork"
 
2620                   ng-disabled="!vm.crudPermissions.canEdit"
 
2621                   ><span translate="MOTIONDIALER.AFTERCALLWORK"
 
2622                     >AfterCallWork</span
 
2627                   <span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span>
 
2629               </md-input-container>
 
2630               <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">
 
2631                 <label translate="MOTIONDIALER.AFTERCALLWORKDURATION"
 
2632                   >AfterCallWorkDuration</label
 
2637                   ng-model="vm.queueCampaign.acwTimeout"
 
2640                   ng-disabled="!vm.crudPermissions.canEdit"
 
2645                     translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"
 
2649                   ng-messages="advancedpreviewForm['acwTimeout'].$error"
 
2650                   ng-show="advancedpreviewForm['acwTimeout'].$touched"
 
2653                   <div ng-message="required">
 
2655                       translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED"
 
2656                       >AfterCallWorkDuration field is required</span
 
2659                   <div ng-message="min">
 
2661                       translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2662                       >AfterCallWorkDuration must be a valid greater or equal
 
2668               </md-input-container>
 
2669               <md-input-container class="md-block">
 
2670                 <label translate="MOTIONDIALER.MONITORFORMAT"
 
2671                   >MonitorFormat</label
 
2674                   name="monitor_format"
 
2675                   ng-model="vm.queueCampaign.monitor_format"
 
2676                   ng-disabled="!vm.crudPermissions.canEdit"
 
2678                   <md-option ng-value="''">Inactive</md-option>
 
2679                   <md-option ng-value="'wav'">wav</md-option>
 
2680                   <md-option ng-value="'wav49'">wav49</md-option>
 
2681                   <md-option ng-value="'gsm'">gsm</md-option>
 
2684                   <span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span>
 
2687                   ng-messages="advancedpreviewForm['monitor_format'].$error"
 
2688                   ng-show="advancedpreviewForm['monitor_format'].$touched"
 
2691                   <div ng-message="required">
 
2692                     <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED"
 
2693                       >MonitorFormat field is required</span
 
2697               </md-input-container>
 
2698               <md-input-container class="md-block">
 
2699                 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
 
2700                   >DialOrderByScheduledAt</label
 
2703                   name="dialOrderByScheduledAt"
 
2704                   ng-model="vm.queueCampaign.dialOrderByScheduledAt"
 
2705                   ng-disabled="!vm.crudPermissions.canEdit"
 
2707                   <md-option ng-value="'DESC'">
 
2708                     {{ 'MOTIONDIALER.DESC' | translate }}
 
2711                   <md-option ng-value="'ASC'">
 
2712                     {{ 'MOTIONDIALER.ASC' | translate }}
 
2717                     translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
 
2721                   ng-messages="advancedpreviewForm['dialOrderByScheduledAt'].$error"
 
2722                   ng-show="advancedpreviewForm['dialOrderByScheduledAt'].$touched"
 
2725                   <div ng-message="required">
 
2727                       translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
 
2728                       >DialOrderByScheduledAt field is required</span
 
2732               </md-input-container>
 
2733               <md-input-container class="md-block">
 
2735                   ng-model="vm.queueCampaign.mandatoryDisposition"
 
2736                   aria-label="MandatoryDisposition"
 
2737                   ng-disabled="!vm.crudPermissions.canEdit"
 
2738                   ><span translate="MOTIONDIALER.MANDATORYDISPOSITION"
 
2739                     >MandatoryDisposition</span
 
2742               </md-input-container>
 
2744                 ng-if="vm.queueCampaign.mandatoryDisposition"
 
2747                 <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID"
 
2748                   >MandatoryDispositionPauseId</label
 
2751                   name="mandatoryDispositionPauseId"
 
2752                   ng-model="vm.queueCampaign.mandatoryDispositionPauseId"
 
2754                   ng-disabled="!vm.crudPermissions.canEdit"
 
2757                     ng-value="mandatoryDispositionPauseId.id"
 
2758                     ng-repeat="mandatoryDispositionPauseId in vm.pauses"
 
2759                     ng-disabled="mandatoryDispositionPauseId.canSelect === false"
 
2760                     >{{ mandatoryDispositionPauseId.name }}</md-option
 
2765                     translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"
 
2769                   ng-messages="advancedpreviewForm['mandatoryDispositionPauseId'].$error"
 
2770                   ng-show="advancedpreviewForm['mandatoryDispositionPauseId'].$touched"
 
2773                   <div ng-message="required">
 
2775                       translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED"
 
2776                       >MandatoryDispositionPauseId field is required</span
 
2780               </md-input-container>
 
2784             ng-if="vm.queueCampaign.dialMethod === 'predictive'"
 
2785             class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp"
 
2787             <div class="pb-16" layout="row" layout-align="start center">
 
2789                 class="h2 secondary-text"
 
2790                 translate="MOTIONDIALER.THRESHOLDS"
 
2795             <form name="thresholdsForm" novalidate>
 
2797                 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
 
2800                 <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD"
 
2801                   >PredictiveMaxThreshold</span
 
2805                     translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"
 
2811                   ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold"
 
2817               </md-input-container>
 
2819                 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
 
2822                 <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD"
 
2823                   >PredictiveMinThreshold</span
 
2827                     translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"
 
2833                   ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold"
 
2839               </md-input-container>
 
2843             class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp"
 
2845             <div class="pb-16" layout="row" layout-align="start center">
 
2846               <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">
 
2850             <form name="recallmeForm" novalidate>
 
2851               <md-input-container class="md-block">
 
2852                 <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT"
 
2853                   >DialRecallMeTimeout</label
 
2857                   name="dialRecallMeTimeout"
 
2858                   ng-model="vm.queueCampaign.dialRecallMeTimeout"
 
2862                   ng-disabled="!vm.crudPermissions.canEdit"
 
2867                     translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"
 
2871                   ng-messages="recallmeForm['dialRecallMeTimeout'].$error"
 
2872                   ng-show="recallmeForm['dialRecallMeTimeout'].$touched"
 
2875                   <div ng-message="required">
 
2877                       translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED"
 
2878                       >DialRecallMeTimeout field is required</span
 
2881                   <div ng-message="min">
 
2883                       translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2884                       >DialRecallMeTimeout must be a valid greater or equal
 
2890               </md-input-container>
 
2891               <md-input-container class="md-block">
 
2893                   ng-model="vm.queueCampaign.dialRecallInQueue"
 
2894                   aria-label="DialRecallInQueue"
 
2895                   ng-disabled="!vm.crudPermissions.canEdit"
 
2896                   ><span translate="MOTIONDIALER.DIALRECALLINQUEUE"
 
2897                     >DialRecallInQueue</span
 
2902                   <span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span>
 
2904               </md-input-container>
 
2908             ng-if="vm.queueCampaign.dialMethod != 'preview'"
 
2909             class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp"
 
2911             <div class="pb-16" layout="row" layout-align="start center">
 
2913                 class="h2 secondary-text"
 
2914                 translate="MOTIONDIALER.GLOBALINTERVAL"
 
2919             <form name="globalintervalForm" novalidate>
 
2920               <md-input-container class="md-block">
 
2921                 <label translate="MOTIONDIALER.GLOBALINTERVAL"
 
2922                   >GlobalInterval</label
 
2926                   name="dialGlobalInterval"
 
2927                   ng-model="vm.queueCampaign.dialGlobalInterval"
 
2930                   ng-disabled="!vm.crudPermissions.canEdit"
 
2934                   <span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span>
 
2937                   ng-messages="globalintervalForm['dialGlobalInterval'].$error"
 
2938                   ng-show="globalintervalForm['dialGlobalInterval'].$touched"
 
2941                   <div ng-message="required">
 
2943                       translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED"
 
2944                       >GlobalInterval field is required</span
 
2948               </md-input-container>
 
2952             ng-if="vm.queueCampaign.dialMethod != 'preview'"
 
2953             class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp"
 
2955             <div class="pb-16" layout="row" layout-align="start center">
 
2956               <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">
 
2960             <form name="timezoneForm" novalidate>
 
2961               <md-input-container class="md-block">
 
2962                 <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>
 
2965                   ng-model="vm.queueCampaign.dialTimezone"
 
2967                   ng-disabled="!vm.crudPermissions.canEdit"
 
2970                   <span translate="MOTIONDIALER.HELP.TIMEZONE"></span>
 
2973                   ng-messages="timezoneForm['dialTimezone'].$error"
 
2974                   ng-show="timezoneForm[dialTimezone].$touched"
 
2977                   <div ng-message="required">
 
2978                     <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED"
 
2979                       >Timezone field is required</span
 
2983               </md-input-container>
 
2987             ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
 
2988             class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp"
 
2990             <div class="pb-16" layout="row" layout-align="start center">
 
2991               <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">
 
2995             <form name="amdForm" novalidate>
 
2996               <md-input-container class="md-block">
 
2998                   ng-model="vm.queueCampaign.dialAMDActive"
 
2999                   aria-label="AMDActive"
 
3000                   ng-disabled="!vm.crudPermissions.canEdit"
 
3001                   ><span translate="MOTIONDIALER.AMDACTIVE"
 
3007                   <span translate="MOTIONDIALER.HELP.AMDACTIVE"></span>
 
3009               </md-input-container>
 
3011                 ng-if="vm.queueCampaign.dialAMDActive"
 
3014                 <label translate="MOTIONDIALER.AMDINITIALSILENCE"
 
3015                   >AMDInitialSilence</label
 
3019                   name="dialAMDInitialSilence"
 
3020                   ng-model="vm.queueCampaign.dialAMDInitialSilence"
 
3022                   ng-disabled="!vm.crudPermissions.canEdit"
 
3026                   <span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span>
 
3029                   ng-messages="amdForm['dialAMDInitialSilence'].$error"
 
3030                   ng-show="amdForm['dialAMDInitialSilence'].$touched"
 
3033                   <div ng-message="required">
 
3035                       translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED"
 
3036                       >AMDInitialSilence field is required</span
 
3039                   <div ng-message="min">
 
3041                       translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3042                       >AMDInitialSilence must be a valid greater or equal
 
3048               </md-input-container>
 
3050                 ng-if="vm.queueCampaign.dialAMDActive"
 
3053                 <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>
 
3056                   name="dialAMDGreeting"
 
3057                   ng-model="vm.queueCampaign.dialAMDGreeting"
 
3059                   ng-disabled="!vm.crudPermissions.canEdit"
 
3063                   <span translate="MOTIONDIALER.HELP.AMDGREETING"></span>
 
3066                   ng-messages="amdForm['dialAMDGreeting'].$error"
 
3067                   ng-show="amdForm['dialAMDGreeting'].$touched"
 
3070                   <div ng-message="required">
 
3071                     <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED"
 
3072                       >AMDGreeting field is required</span
 
3075                   <div ng-message="min">
 
3077                       translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3078                       >AMDGreeting must be a valid greater or equal than</span
 
3083               </md-input-container>
 
3085                 ng-if="vm.queueCampaign.dialAMDActive"
 
3088                 <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE"
 
3089                   >AMDAfterGreetingSilence</label
 
3093                   name="dialAMDAfterGreetingSilence"
 
3094                   ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence"
 
3096                   ng-disabled="!vm.crudPermissions.canEdit"
 
3101                     translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"
 
3105                   ng-messages="amdForm['dialAMDAfterGreetingSilence'].$error"
 
3106                   ng-show="amdForm['dialAMDAfterGreetingSilence'].$touched"
 
3109                   <div ng-message="required">
 
3111                       translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED"
 
3112                       >AMDAfterGreetingSilence field is required</span
 
3115                   <div ng-message="min">
 
3117                       translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3118                       >AMDAfterGreetingSilence must be a valid greater or equal
 
3124               </md-input-container>
 
3126                 ng-if="vm.queueCampaign.dialAMDActive"
 
3129                 <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME"
 
3130                   >AMDTotalAnalysisTime</label
 
3134                   name="dialAMDTotalAnalysisTime"
 
3135                   ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime"
 
3137                   ng-disabled="!vm.crudPermissions.canEdit"
 
3142                     translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"
 
3146                   ng-messages="amdForm['dialAMDTotalAnalysisTime'].$error"
 
3147                   ng-show="amdForm['dialAMDTotalAnalysisTime'].$touched"
 
3150                   <div ng-message="required">
 
3152                       translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED"
 
3153                       >AMDTotalAnalysisTime field is required</span
 
3156                   <div ng-message="min">
 
3158                       translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3159                       >AMDTotalAnalysisTime must be a valid greater or equal
 
3165               </md-input-container>
 
3167                 ng-if="vm.queueCampaign.dialAMDActive"
 
3170                 <label translate="MOTIONDIALER.AMDMINWORDLENGTH"
 
3171                   >AMDMinWordLength</label
 
3175                   name="dialAMDMinWordLength"
 
3176                   ng-model="vm.queueCampaign.dialAMDMinWordLength"
 
3178                   ng-disabled="!vm.crudPermissions.canEdit"
 
3182                   <span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span>
 
3185                   ng-messages="amdForm['dialAMDMinWordLength'].$error"
 
3186                   ng-show="amdForm['dialAMDMinWordLength'].$touched"
 
3189                   <div ng-message="required">
 
3191                       translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED"
 
3192                       >AMDMinWordLength field is required</span
 
3195                   <div ng-message="min">
 
3197                       translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3198                       >AMDMinWordLength must be a valid greater or equal
 
3204               </md-input-container>
 
3206                 ng-if="vm.queueCampaign.dialAMDActive"
 
3209                 <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE"
 
3210                   >AMDBetweenWordsSilence</label
 
3214                   name="dialAMDBetweenWordsSilence"
 
3215                   ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence"
 
3217                   ng-disabled="!vm.crudPermissions.canEdit"
 
3222                     translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"
 
3226                   ng-messages="amdForm['dialAMDBetweenWordsSilence'].$error"
 
3227                   ng-show="amdForm['dialAMDBetweenWordsSilence'].$touched"
 
3230                   <div ng-message="required">
 
3232                       translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED"
 
3233                       >AMDBetweenWordsSilence field is required</span
 
3236                   <div ng-message="min">
 
3238                       translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3239                       >AMDBetweenWordsSilence must be a valid greater or equal
 
3245               </md-input-container>
 
3247                 ng-if="vm.queueCampaign.dialAMDActive"
 
3250                 <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS"
 
3251                   >AMDMaximumNumberOfWords</label
 
3255                   name="dialAMDMaximumNumberOfWords"
 
3256                   ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords"
 
3258                   ng-disabled="!vm.crudPermissions.canEdit"
 
3263                     translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"
 
3267                   ng-messages="amdForm['dialAMDMaximumNumberOfWords'].$error"
 
3268                   ng-show="amdForm['dialAMDMaximumNumberOfWords'].$touched"
 
3271                   <div ng-message="required">
 
3273                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED"
 
3274                       >AMDMaximumNumberOfWords field is required</span
 
3277                   <div ng-message="min">
 
3279                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3280                       >AMDMaximumNumberOfWords must be a valid greater or equal
 
3286               </md-input-container>
 
3288                 ng-if="vm.queueCampaign.dialAMDActive"
 
3291                 <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD"
 
3292                   >AMDSilenceThreshold</label
 
3296                   name="dialAMDSilenceThreshold"
 
3297                   ng-model="vm.queueCampaign.dialAMDSilenceThreshold"
 
3300                   ng-disabled="!vm.crudPermissions.canEdit"
 
3305                     translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"
 
3309                   ng-messages="amdForm['dialAMDSilenceThreshold'].$error"
 
3310                   ng-show="amdForm['dialAMDSilenceThreshold'].$touched"
 
3313                   <div ng-message="required">
 
3315                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED"
 
3316                       >AMDSilenceThreshold field is required</span
 
3319                   <div ng-message="min">
 
3321                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3322                       >AMDSilenceThreshold must be a valid greater or equal
 
3327                   <div ng-message="max">
 
3329                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
3330                       >AMDSilenceThreshold must be a valid greater or equal
 
3336               </md-input-container>
 
3338                 ng-if="vm.queueCampaign.dialAMDActive"
 
3341                 <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH"
 
3342                   >AMDMaximumWordLength</label
 
3346                   name="dialAMDMaximumWordLength"
 
3347                   ng-model="vm.queueCampaign.dialAMDMaximumWordLength"
 
3349                   ng-disabled="!vm.crudPermissions.canEdit"
 
3354                     translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"
 
3358                   ng-messages="amdForm['dialAMDMaximumWordLength'].$error"
 
3359                   ng-show="amdForm['dialAMDMaximumWordLength'].$touched"
 
3362                   <div ng-message="required">
 
3364                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED"
 
3365                       >AMDMaximumWordLength field is required</span
 
3368                   <div ng-message="min">
 
3370                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
3371                       >AMDMaximumWordLength must be a valid greater or equal
 
3377               </md-input-container>
 
3384           <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>
 
3388             class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp"
 
3391               ng-controller="QueueCampaignHopperStatisticsController as vm_hs"
 
3392               ng-init="vm_hs.init(vm.queueCampaign)"
 
3394               <md-toolbar class="md-table-toolbar md-default">
 
3395                 <div class="md-toolbar-tools">
 
3396                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET"
 
3401                     class="md-icon-button"
 
3402                     ng-click="vm_hs.init(vm.queueCampaign)"
 
3403                     aria-label="refresh Hopper"
 
3405                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
 
3407                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
3411               <!-- WIDGET GROUP -->
 
3412               <div class="widget-group" layout="row" flex="100" layout-wrap>
 
3422                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
3426                       layout-align="center center"
 
3429                       <div class="md-display-1 pb-8">
 
3430                         {{(vm_hs.total || 0) + (vm_hs.closed || 0)}}
 
3432                       <div class="font-weight-500 secondary-text">
 
3433                         {{ 'MOTIONDIALER.TOTAL' | translate }}
 
3450                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
3454                       layout-align="center center"
 
3457                       <div class="md-display-1 pb-8">
 
3458                         {{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh ||
 
3459                         0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
 
3462                       <div class="font-weight-500 secondary-text">
 
3463                         {{ 'MOTIONDIALER.FRESH' | translate }}
 
3480                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
3484                       layout-align="center center"
 
3487                       <div class="md-display-1 pb-8">
 
3488                         {{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}}
 
3489                         ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) *
 
3490                         100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
 
3493                       <div class="font-weight-500 secondary-text">
 
3494                         {{ 'MOTIONDIALER.OPEN' | translate }}
 
3511                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
3515                       layout-align="center center"
 
3518                       <div class="md-display-1 pb-8">
 
3519                         {{vm_hs.closed ? (vm_hs.closed || 0) : 0}}
 
3520                         ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed
 
3521                         + (vm_hs.total || 0))) | number: 2) : 0}}%)
 
3523                       <div class="font-weight-500 secondary-text">
 
3524                         {{ 'MOTIONDIALER.CLOSED' | translate }}
 
3532               <!-- / WIDGET GROUP -->
 
3536             class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp"
 
3539               ng-controller="QueueCampaignHoppersController as vm_dc"
 
3540               ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
 
3543                 class="md-table-toolbar md-default"
 
3544                 ng-hide="vm_dc.selectedQueueCampaignHoppers.length"
 
3546                 <div class="md-toolbar-tools">
 
3547                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERS"
 
3551                     on-search="vm_dc.query.filter = query"
 
3552                     on-collapse="vm_dc.query.filter = undefined"
 
3558                     class="md-icon-button"
 
3559                     ng-click="vm_dc.getQueueCampaignHoppers()"
 
3560                     aria-label="refresh Hoppers"
 
3562                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
 
3564                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
3569                 class="md-table-toolbar md-accent"
 
3570                 ng-show="vm_dc.selectedQueueCampaignHoppers.length"
 
3572                 <div class="md-toolbar-tools">
 
3573                   <span class="md-subhead"
 
3574                     >{{vm_dc.selectedQueueCampaignHoppers.length}}
 
3575                     {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? 'items' :
 
3576                     'item'}} selected</span
 
3580                     class="md-icon-button"
 
3581                     ng-csv="vm_dc.exportSelectedQueueCampaignHoppers"
 
3583                     filename="queueCampaigns.csv"
 
3585                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
3588                     ng-if="vm_dc.crudPermissions.canDelete"
 
3589                     class="md-icon-button"
 
3590                     ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)"
 
3591                     aria-label="delete selected"
 
3593                     translate-attr-label="MOTIONDIALER.DELETE_SELECTED"
 
3595                     <md-icon md-font-icon="icon-delete"></md-icon>
 
3599               <md-table-container class="font-size-12">
 
3604                   ng-model="vm_dc.selectedQueueCampaignHoppers"
 
3605                   md-progress="vm_dc.promise"
 
3609                     md-order="vm_dc.query.sort"
 
3610                     md-on-reorder="vm_dc.getQueueCampaignHoppers"
 
3613                       <th md-column md-order-by="ContactId">
 
3614                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
3616                       <th md-column md-order-by="phone">
 
3617                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
3619                       <th md-column md-order-by="countcongestionretry">
 
3620                         {{ 'MOTIONDIALER.CONGESTION' | translate }}
 
3622                       <th md-column md-order-by="countbusyretry">
 
3623                         {{ 'MOTIONDIALER.BUSY' | translate }}
 
3625                       <th md-column md-order-by="countnoanswerretry">
 
3626                         {{ 'MOTIONDIALER.NOANSWER' | translate }}
 
3628                       <th md-column md-order-by="countnosuchnumberretry">
 
3629                         {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
 
3631                       <th md-column md-order-by="countdropretry">
 
3632                         {{ 'MOTIONDIALER.DROP' | translate }}
 
3634                       <th md-column md-order-by="countabandonedretry">
 
3635                         {{ 'MOTIONDIALER.ABANDONED' | translate }}
 
3637                       <th md-column md-order-by="countmachineretry">
 
3638                         {{ 'MOTIONDIALER.MACHINE' | translate }}
 
3640                       <th md-column md-order-by="countagentrejectretry">
 
3641                         {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
 
3643                       <th md-column md-order-by="scheduledat">
 
3644                         {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
 
3646                       <th md-column md-order-by="priority">
 
3647                         {{ 'MOTIONDIALER.PRIORITY' | translate }}
 
3649                       <th md-column md-order-by="recallme">
 
3650                         {{ 'MOTIONDIALER.RECALLAGENT' | translate }}
 
3652                       <th md-column width="10px"></th>
 
3660                       ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows"
 
3663                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3666                         {{hopper.ContactId}}
 
3669                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3675                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3678                         {{hopper.countcongestionretry}}
 
3681                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3684                         {{hopper.countbusyretry}}
 
3687                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3690                         {{hopper.countnoanswerretry}}
 
3693                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3696                         {{hopper.countnosuchnumberretry}}
 
3699                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3702                         {{hopper.countdropretry}}
 
3705                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3708                         {{hopper.countabandonedretry}}
 
3711                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3714                         {{hopper.countmachineretry}}
 
3717                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3720                         {{hopper.countagentrejectretry}}
 
3723                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3726                         {{ hopper.scheduledat | formatdate }}
 
3729                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3732                         {{ vm_dc.arraypriority[hopper.priority].option }}
 
3736                         ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3741                           md-colors="{color: {{hopper.recallme ? '\'green\'' : '\'grey\''}}}"
 
3742                           md-font-icon="{{hopper.recallme? 'icon-check' : 'icon-close'}}"
 
3748                         ng-if="!vm_dc.crudPermissions.readOnly"
 
3752                             class="md-icon-button"
 
3755                             translate-attr-aria-label="MOTIONDIALER.MORE"
 
3756                             ng-click="$mdOpenMenu($event)"
 
3759                               md-font-icon="icon-dots-vertical"
 
3763                           <md-menu-content width="3">
 
3764                             <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
3766                                 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
 
3767                                 translate="MOTIONDIALER.EDIT_HOPPER"
 
3773                               ng-if="vm_dc.crudPermissions.canDelete"
 
3776                                 ng-click="vm_dc.deleteConfirm(hopper, $event)"
 
3777                                 translate="MOTIONDIALER.DELETE_HOPPER"
 
3786                     <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">
 
3787                       <td md-cell colspan="17">
 
3788                         <div layout="row" layout-align="center center">
 
3790                             class="text-boxed-light"
 
3791                             translate="MOTIONDIALER.NO_HOPPER_AVAILABLE"
 
3792                             >No hopper available</span
 
3799               </md-table-container>
 
3800               <md-table-pagination
 
3801                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
3802                 md-limit="vm_dc.query.limit"
 
3803                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
3804                 md-page="vm_dc.query.page"
 
3805                 md-total="{{vm_dc.queueCampaignHoppers.count}}"
 
3806                 md-on-paginate="vm_dc.getQueueCampaignHoppers"
 
3808               ></md-table-pagination>
 
3815           <span translate="MOTIONDIALER.HISTORY">HISTORY</span>
 
3819             class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp"
 
3822               ng-controller="QueueCampaignHopperHistoriesController as vm_dc"
 
3823               ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
 
3826                 class="md-table-toolbar md-default"
 
3827                 ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length"
 
3829                 <div class="md-toolbar-tools">
 
3832                     translate="MOTIONDIALER.HOPPERHISTORIES"
 
3833                     >HopperHistories</span
 
3836                     on-search="vm_dc.query.filter = query"
 
3837                     on-collapse="vm_dc.query.filter = undefined"
 
3843                     class="md-icon-button"
 
3844                     ng-click="vm_dc.getQueueCampaignHopperHistories()"
 
3845                     aria-label="refresh HopperHistories"
 
3847                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES"
 
3849                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
3854                 class="md-table-toolbar md-accent"
 
3855                 ng-show="vm_dc.selectedQueueCampaignHopperHistories.length"
 
3857                 <div class="md-toolbar-tools">
 
3858                   <span class="md-subhead"
 
3859                     >{{vm_dc.selectedQueueCampaignHopperHistories.length}}
 
3860                     {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ?
 
3861                     'items' : 'item'}} selected</span
 
3865                     class="md-icon-button"
 
3866                     ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories"
 
3868                     filename="queueCampaigns.csv"
 
3870                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
3874               <md-table-container class="font-size-12">
 
3879                   ng-model="vm_dc.selectedQueueCampaignHopperHistories"
 
3880                   md-progress="vm_dc.promise"
 
3884                     md-order="vm_dc.query.sort"
 
3885                     md-on-reorder="vm_dc.getQueueCampaignHopperHistories"
 
3888                       <th md-column md-order-by="uniqueid">
 
3889                         {{ 'MOTIONDIALER.UNIQUEID' | translate }}
 
3891                       <th md-column md-order-by="ContactId">
 
3892                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
3894                       <th md-column md-order-by="calleridnum">
 
3895                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
3897                       <th md-column md-order-by="calleridname">
 
3898                         {{ 'MOTIONDIALER.NAME' | translate }}
 
3900                       <th md-column md-order-by="statedesc">
 
3901                         {{ 'MOTIONDIALER.STATUS' | translate }}
 
3903                       <th md-column md-order-by="scheduledat">
 
3904                         {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
 
3906                       <th md-column md-order-by="starttime">
 
3907                         {{ 'MOTIONDIALER.STARTTIME' | translate }}
 
3909                       <th md-column md-order-by="endtime">
 
3910                         {{ 'MOTIONDIALER.ENDTIME' | translate }}
 
3912                       <th md-column width="10px"></th>
 
3918                       md-select="hopperHistory"
 
3920                       ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows"
 
3922                       <td md-cell>{{hopperHistory.uniqueid}}</td>
 
3923                       <td md-cell>{{hopperHistory.ContactId}}</td>
 
3924                       <td md-cell>{{hopperHistory.calleridnum}}</td>
 
3925                       <td md-cell>{{hopperHistory.calleridname}}</td>
 
3926                       <td md-cell>{{hopperHistory.statedesc}}</td>
 
3928                         {{ hopperHistory.scheduledat | formatdate }}
 
3931                         {{ hopperHistory.starttime | formatdate }}
 
3933                       <td md-cell>{{ hopperHistory.endtime | formatdate }}</td>
 
3934                       <td md-cell class="actions"></td>
 
3938                       ng-if="!vm_dc.queueCampaignHopperHistories.rows.length"
 
3940                       <td md-cell colspan="11">
 
3941                         <div layout="row" layout-align="center center">
 
3943                             class="text-boxed-light"
 
3944                             translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE"
 
3945                             >No hopperhistory available</span
 
3952               </md-table-container>
 
3953               <md-table-pagination
 
3954                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
3955                 md-limit="vm_dc.query.limit"
 
3956                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
3957                 md-page="vm_dc.query.page"
 
3958                 md-total="{{vm_dc.queueCampaignHopperHistories.count}}"
 
3959                 md-on-paginate="vm_dc.getQueueCampaignHopperHistories"
 
3961               ></md-table-pagination>
 
3968           <span translate="MOTIONDIALER.FINAL">FINAL</span>
 
3972             class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp"
 
3975               ng-controller="QueueCampaignHopperFinalsController as vm_dc"
 
3976               ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
 
3979                 class="md-table-toolbar md-default"
 
3980                 ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length"
 
3982                 <div class="md-toolbar-tools">
 
3983                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS"
 
3987                     on-search="vm_dc.query.filter = query"
 
3988                     on-collapse="vm_dc.query.filter = undefined"
 
3994                     class="md-icon-button"
 
3995                     ng-click="vm_dc.getQueueCampaignHopperFinals()"
 
3996                     aria-label="refresh HopperFinals"
 
3998                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS"
 
4000                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
4002                   <td md-cell class="actions">
 
4005                         class="md-icon-button"
 
4008                         translate-attr-aria-label="MOTIONDIALER.MORE"
 
4009                         ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);"
 
4011                         <md-icon md-font-icon="icon-backup-restore"></md-icon>
 
4013                           ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
 
4016                       <md-menu-content width="3">
 
4017                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4019                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)"
 
4021                             <span translate="MOTIONDIALER.NOANSWER "
 
4025                               >({{vm_dc.contacts.noAnswerContacts}})</span
 
4029                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4031                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)"
 
4033                             <span translate="MOTIONDIALER.BUSY ">Busy</span>
 
4035                               >({{vm_dc.contacts.busyContacts}})</span
 
4039                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4041                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)"
 
4043                             <span translate="MOTIONDIALER.CONGESTION "
 
4047                               >({{vm_dc.contacts.congestionContacts}})</span
 
4051                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4053                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)"
 
4055                             <span translate="MOTIONDIALER.DROPPED ">Drop</span>
 
4057                               >({{vm_dc.contacts.dropContacts}})</span
 
4061                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4063                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)"
 
4065                             <span translate="MOTIONDIALER.ABANDONED "
 
4069                               >({{vm_dc.contacts.abandonedContacts}})</span
 
4073                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4075                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)"
 
4077                             <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT"
 
4081                               >({{vm_dc.contacts.reCallContacts}})</span
 
4085                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4087                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)"
 
4089                             <span translate="MOTIONDIALER.NO_SUCH_NUMBER"
 
4093                               >({{vm_dc.contacts.noSuchContacts}})</span
 
4099                             ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)"
 
4101                             <span translate="MOTIONDIALER.ANSWERING_MACHINE"
 
4102                               >AnsweringMachine</span
 
4105                               >({{vm_dc.contacts.answeringMachine}})</span
 
4115                 class="md-table-toolbar md-accent"
 
4116                 ng-show="vm_dc.selectedQueueCampaignHopperFinals.length"
 
4118                 <div class="md-toolbar-tools">
 
4119                   <span class="md-subhead"
 
4120                     >{{vm_dc.selectedQueueCampaignHopperFinals.length}}
 
4121                     {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ?
 
4122                     'items' : 'item'}} selected</span
 
4126                     class="md-icon-button"
 
4127                     ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals"
 
4129                     filename="queueCampaigns.csv"
 
4131                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
4134                     ng-if="vm_dc.crudPermissions.canEdit"
 
4135                     class="md-icon-button"
 
4136                     ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)"
 
4137                     aria-label="move selected"
 
4139                     translate-attr-label="MOTIONDIALER.MOVE_SELECTED"
 
4141                     <md-icon md-font-icon="icon-restore"></md-icon>
 
4143                       ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
 
4148               <md-table-container class="font-size-12">
 
4153                   ng-model="vm_dc.selectedQueueCampaignHopperFinals"
 
4154                   md-progress="vm_dc.promise"
 
4158                     md-order="vm_dc.query.sort"
 
4159                     md-on-reorder="vm_dc.getQueueCampaignHopperFinals"
 
4162                       <th md-column md-order-by="uniqueid">
 
4163                         {{ 'MOTIONDIALER.UNIQUEID' | translate }}
 
4165                       <th md-column md-order-by="ContactId">
 
4166                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
4168                       <th md-column md-order-by="calleridnum">
 
4169                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
4171                       <th md-column md-order-by="calleridname">
 
4172                         {{ 'MOTIONDIALER.NAME' | translate }}
 
4174                       <th md-column md-order-by="statedesc">
 
4175                         {{ 'MOTIONDIALER.STATUS' | translate }}
 
4177                       <th md-column md-order-by="countcongestionretry">
 
4178                         {{ 'MOTIONDIALER.CONGESTION' | translate }}
 
4180                       <th md-column md-order-by="countbusyretry">
 
4181                         {{ 'MOTIONDIALER.BUSY' | translate }}
 
4183                       <th md-column md-order-by="countnoanswerretry">
 
4184                         {{ 'MOTIONDIALER.NOANSWER' | translate }}
 
4186                       <th md-column md-order-by="countnosuchnumberretry">
 
4187                         {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
 
4189                       <th md-column md-order-by="countdropretry">
 
4190                         {{ 'MOTIONDIALER.DROP' | translate }}
 
4192                       <th md-column md-order-by="countabandonedretry">
 
4193                         {{ 'MOTIONDIALER.ABANDONED' | translate }}
 
4195                       <th md-column md-order-by="countmachineretry">
 
4196                         {{ 'MOTIONDIALER.MACHINE' | translate }}
 
4198                       <th md-column md-order-by="countagentrejectretry">
 
4199                         {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
 
4201                       <th md-column md-order-by="starttime">
 
4202                         {{ 'MOTIONDIALER.STARTTIME' | translate }}
 
4204                       <th md-column md-order-by="endtime">
 
4205                         {{ 'MOTIONDIALER.ENDTIME' | translate }}
 
4207                       <th md-column md-order-by="disposition">
 
4208                         {{ 'MOTIONDIALER.DISPOSITION' | translate }}
 
4210                       <th md-column width="10px"></th>
 
4216                       md-select="hopperFinal"
 
4218                       ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows"
 
4220                       <td md-cell>{{hopperFinal.uniqueid}}</td>
 
4221                       <td md-cell>{{hopperFinal.ContactId}}</td>
 
4222                       <td md-cell>{{hopperFinal.calleridnum}}</td>
 
4223                       <td md-cell>{{hopperFinal.calleridname}}</td>
 
4224                       <td md-cell>{{hopperFinal.statedesc}}</td>
 
4225                       <td md-cell>{{hopperFinal.countcongestionretry}}</td>
 
4226                       <td md-cell>{{hopperFinal.countbusyretry}}</td>
 
4227                       <td md-cell>{{hopperFinal.countnoanswerretry}}</td>
 
4228                       <td md-cell>{{hopperFinal.countnosuchnumberretry}}</td>
 
4229                       <td md-cell>{{hopperFinal.countdropretry}}</td>
 
4230                       <td md-cell>{{hopperFinal.countabandonedretry}}</td>
 
4231                       <td md-cell>{{hopperFinal.countmachineretry}}</td>
 
4232                       <td md-cell>{{hopperFinal.countagentrejectretry}}</td>
 
4233                       <td md-cell>{{ hopperFinal.starttime | formatdate }}</td>
 
4234                       <td md-cell>{{ hopperFinal.endtime | formatdate }}</td>
 
4235                       <td md-cell>{{hopperFinal.disposition}}</td>
 
4239                         ng-if="!vm_dc.crudPermissions.readOnly"
 
4243                             class="md-icon-button"
 
4246                             translate-attr-aria-label="MOTIONDIALER.MORE"
 
4247                             ng-click="$mdOpenMenu($event)"
 
4250                               md-font-icon="icon-dots-vertical"
 
4254                           <md-menu-content width="3">
 
4255                             <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
4257                                 ng-click="vm_dc.moveConfirm(hopperFinal, $event)"
 
4258                                 translate="MOTIONDIALER.MOVE_HOPPERFINAL"
 
4269                       ng-if="!vm_dc.queueCampaignHopperFinals.rows.length"
 
4271                       <td md-cell colspan="28">
 
4272                         <div layout="row" layout-align="center center">
 
4274                             class="text-boxed-light"
 
4275                             translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE"
 
4276                             >No hopperfinal available</span
 
4283               </md-table-container>
 
4284               <md-table-pagination
 
4285                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
4286                 md-limit="vm_dc.query.limit"
 
4287                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
4288                 md-page="vm_dc.query.page"
 
4289                 md-total="{{vm_dc.queueCampaignHopperFinals.count}}"
 
4290                 md-on-paginate="vm_dc.getQueueCampaignHopperFinals"
 
4292               ></md-table-pagination>
 
4299           <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>
 
4303             class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp"
 
4306               ng-controller="QueueCampaignHopperBlacksController as vm_dc"
 
4307               ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
 
4310                 class="md-table-toolbar md-default"
 
4311                 ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length"
 
4313                 <div class="md-toolbar-tools">
 
4314                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS"
 
4318                     on-search="vm_dc.query.filter = query"
 
4319                     on-collapse="vm_dc.query.filter = undefined"
 
4327                 class="md-table-toolbar md-accent"
 
4328                 ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length"
 
4330                 <div class="md-toolbar-tools">
 
4331                   <span class="md-subhead"
 
4332                     >{{vm_dc.selectedQueueCampaignHopperBlacks.length}}
 
4333                     {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ?
 
4334                     'items' : 'item'}} selected</span
 
4338                     class="md-icon-button"
 
4339                     ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks"
 
4341                     filename="queueCampaigns.csv"
 
4343                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
4347               <md-table-container class="font-size-12">
 
4352                   ng-model="vm_dc.selectedQueueCampaignHopperBlacks"
 
4353                   md-progress="vm_dc.promise"
 
4357                     md-order="vm_dc.query.sort"
 
4358                     md-on-reorder="vm_dc.getQueueCampaignHopperBlacks"
 
4361                       <th md-column md-order-by="ContactId">
 
4362                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
4364                       <th md-column md-order-by="phone">
 
4365                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
4367                       <th md-column width="10px"></th>
 
4373                       md-select="hopperBlack"
 
4375                       ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows"
 
4377                       <td md-cell>{{hopperBlack.ContactId}}</td>
 
4378                       <td md-cell>{{hopperBlack.phone}}</td>
 
4379                       <td md-cell class="actions"></td>
 
4383                       ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length"
 
4385                       <td md-cell colspan="4">
 
4386                         <div layout="row" layout-align="center center">
 
4388                             class="text-boxed-light"
 
4389                             translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE"
 
4390                             >No hopperblack available</span
 
4397               </md-table-container>
 
4398               <md-table-pagination
 
4399                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
4400                 md-limit="vm_dc.query.limit"
 
4401                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
4402                 md-page="vm_dc.query.page"
 
4403                 md-total="{{vm_dc.queueCampaignHopperBlacks.count}}"
 
4404                 md-on-paginate="vm_dc.getQueueCampaignHopperBlacks"
 
4406               ></md-table-pagination>